sanity-parallel-test-results.html

Report generated on 30-Oct-2024 at 13:35:53 by pytest-html v3.1.1

Summary

143 tests ran in 1422.74 seconds.

136 passed, 2 skipped, 6 failed, 0 errors, 1 expected failures, 0 unexpected passes, 0 rerun

Results

Result Test Duration Links
Failed tests/devhub_submissions/test_addon_submissions.py::test_submit_listed_wizard_theme_tc_id_c97500[Desktop] 66.93
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="d5d1e42e-5a6c-48f3-83e8-9d7515a0a79f")>, base_url = 'https://addons.mozilla.org'
variables = {'addon_size_extension': 'darkreader', 'addon_validation_message': 'Your add-on was validated with no errors or warnings.', 'addon_with_stats': 'new-tab-override', 'all_scores_addon': 'ublock-origin', ...}
wait = <[AttributeError("'function' object has no attribute 'session_id'") raised in repr()] WebDriverWait object at 0x11b9a19d0>, delete_themes = None

@pytest.mark.sanity
def test_submit_listed_wizard_theme_tc_id_c97500(selenium, base_url, variables, wait, delete_themes):
"""A test that checks a straight-forward theme submission with the devhub wizard"""
page = DevHubHome(selenium, base_url).open().wait_for_page_to_load()
page.devhub_login("submissions_user")
submit_addon = page.click_submit_theme_button()
# start the upload for a listed theme
submit_addon.select_listed_option()
submit_addon.click_continue()
create_theme = submit_addon.click_create_theme_button()
theme_name = f"wizard_theme_{reusables.get_random_string(5)}"
create_theme.set_theme_name(theme_name)
create_theme.upload_theme_header("theme_header.png")
wait.until(lambda _: create_theme.uploaded_image_preview.is_displayed())
# make a note of the image source uploaded as the theme header
uploaded_img_source = create_theme.uploaded_image_source
# verify that the uploaded image is applied in the browser preview
assert uploaded_img_source == create_theme.browser_preview_image
> theme_details = create_theme.submit_theme()

tests/devhub_submissions/test_addon_submissions.py:89:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/desktop/developers/submit_addon.py:884: in submit_theme
).wait_for_page_to_load()
pages/desktop/developers/submit_addon.py:660: in wait_for_page_to_load
self.wait.until(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.support.wait.WebDriverWait (session="d5d1e42e-5a6c-48f3-83e8-9d7515a0a79f")>, method = <function visibility_of_element_located.<locals>._predicate at 0x11b882ca0>, message = ''

def until(self, method, message: str = ""):
"""Calls the method provided with the driver as an argument until the \
return value does not evaluate to ``False``.

:param method: callable(WebDriver)
:param message: optional message for :exc:`TimeoutException`
:returns: the result of the last call to `method`
:raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs
"""
screen = None
stacktrace = None

end_time = time.monotonic() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.monotonic() > end_time:
break
> raise TimeoutException(message, screen, stacktrace)
E selenium.common.exceptions.TimeoutException: Message:
E Stacktrace:
E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5
E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:511:5
E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16

venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException
------------------------------Captured stdout call------------------------------
The "click continue button" event occurred.
Failed tests/frontend/test_addon_detail.py::test_more_info_addon_size[Desktop] 9.31
self = <urllib.request.HTTPSHandler object at 0x11c3089d0>, http_class = <class 'http.client.HTTPSConnection'>, req = <urllib.request.Request object at 0x11c308e10>
http_conn_args = {'check_hostname': None, 'context': None}, host = 'addons.mozilla.org', h = <http.client.HTTPSConnection object at 0x11c309a10>

def do_open(self, http_class, req, **http_conn_args):
"""Return an HTTPResponse object for the request, using http_class.

http_class must implement the HTTPConnection API from http.client.
"""
host = req.host
if not host:
raise URLError('no host given')

# will parse host:port
h = http_class(host, timeout=req.timeout, **http_conn_args)
h.set_debuglevel(self._debuglevel)

headers = dict(req.unredirected_hdrs)
headers.update({k: v for k, v in req.headers.items()
if k not in headers})

# TODO(jhylton): Should this be redesigned to handle
# persistent connections?

# We want to make an HTTP/1.1 request, but the addinfourl
# class isn't prepared to deal with a persistent connection.
# It will try to read all remaining data from the socket,
# which will block while the server waits for the next request.
# So make sure the connection gets closed after the (only)
# request.
headers["Connection"] = "close"
headers = {name.title(): val for name, val in headers.items()}

if req._tunnel_host:
tunnel_headers = {}
proxy_auth_hdr = "Proxy-Authorization"
if proxy_auth_hdr in headers:
tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr]
# Proxy-Authorization should not be sent to origin
# server.
del headers[proxy_auth_hdr]
h.set_tunnel(req._tunnel_host, headers=tunnel_headers)

try:
try:
> h.request(req.get_method(), req.selector, req.data, headers,
encode_chunked=req.has_header('Transfer-encoding'))

/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:1348:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:1286: in request
self._send_request(method, url, body, headers, encode_chunked)
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:1332: in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:1281: in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:1041: in _send_output
self.send(msg)
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:979: in send
self.connect()
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:1458: in connect
self.sock = self._context.wrap_socket(self.sock,
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ssl.py:517: in wrap_socket
return self.sslsocket_class._create(
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ssl.py:1075: in _create
self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <ssl.SSLSocket [closed] fd=-1, family=30, type=1, proto=0>, block = False

@_sslcopydoc
def do_handshake(self, block=False):
self._check_connected()
timeout = self.gettimeout()
try:
if timeout == 0.0 and block:
self.settimeout(None)
> self._sslobj.do_handshake()
E ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002)

/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ssl.py:1346: SSLCertVerificationError

During handling of the above exception, another exception occurred:

selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="8804141f-068a-4523-97a8-7fa82e2e976f")>, base_url = 'https://addons.mozilla.org'
variables = {'addon_size_extension': 'darkreader', 'addon_validation_message': 'Your add-on was validated with no errors or warnings.', 'addon_with_stats': 'new-tab-override', 'all_scores_addon': 'ublock-origin', ...}

@pytest.mark.sanity
@pytest.mark.nondestructive
def test_more_info_addon_size(selenium, base_url, variables):
extension = variables["addon_size_extension"]
selenium.get(f"{base_url}/addon/{extension}")
addon = Detail(selenium, base_url).wait_for_page_to_load()
assert addon.more_info.addon_size.is_displayed()
more_info_size = addon.more_info.addon_size.text
# get the file URL and read its size
> file = urllib.request.urlopen(addon.addon_xpi)

tests/frontend/test_addon_detail.py:378:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:216: in urlopen
return opener.open(url, data, timeout)
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:519: in open
response = self._open(req, data)
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:536: in _open
result = self._call_chain(self.handle_open, protocol, protocol +
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:496: in _call_chain
result = func(*args)
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:1391: in https_open
return self.do_open(http.client.HTTPSConnection, req,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <urllib.request.HTTPSHandler object at 0x11c3089d0>, http_class = <class 'http.client.HTTPSConnection'>, req = <urllib.request.Request object at 0x11c308e10>
http_conn_args = {'check_hostname': None, 'context': None}, host = 'addons.mozilla.org', h = <http.client.HTTPSConnection object at 0x11c309a10>

def do_open(self, http_class, req, **http_conn_args):
"""Return an HTTPResponse object for the request, using http_class.

http_class must implement the HTTPConnection API from http.client.
"""
host = req.host
if not host:
raise URLError('no host given')

# will parse host:port
h = http_class(host, timeout=req.timeout, **http_conn_args)
h.set_debuglevel(self._debuglevel)

headers = dict(req.unredirected_hdrs)
headers.update({k: v for k, v in req.headers.items()
if k not in headers})

# TODO(jhylton): Should this be redesigned to handle
# persistent connections?

# We want to make an HTTP/1.1 request, but the addinfourl
# class isn't prepared to deal with a persistent connection.
# It will try to read all remaining data from the socket,
# which will block while the server waits for the next request.
# So make sure the connection gets closed after the (only)
# request.
headers["Connection"] = "close"
headers = {name.title(): val for name, val in headers.items()}

if req._tunnel_host:
tunnel_headers = {}
proxy_auth_hdr = "Proxy-Authorization"
if proxy_auth_hdr in headers:
tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr]
# Proxy-Authorization should not be sent to origin
# server.
del headers[proxy_auth_hdr]
h.set_tunnel(req._tunnel_host, headers=tunnel_headers)

try:
try:
h.request(req.get_method(), req.selector, req.data, headers,
encode_chunked=req.has_header('Transfer-encoding'))
except OSError as err: # timeout error
> raise URLError(err)
E urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002)>

/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:1351: URLError
Failed tests/frontend/test_blog.py::test_blog_install_addon[Desktop] 6.67
base_url = 'https://addons.mozilla.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="df2b8938-72cd-4699-aa38-8db04890fe1e")>
variables = {'addon_size_extension': 'darkreader', 'addon_validation_message': 'Your add-on was validated with no errors or warnings.', 'addon_with_stats': 'new-tab-override', 'all_scores_addon': 'ublock-origin', ...}
firefox = <foxpuppet.foxpuppet.FoxPuppet object at 0x11d75fad0>, firefox_notifications = <function notifications at 0x118618720>
wait = <[AttributeError("'function' object has no attribute 'session_id'") raised in repr()] WebDriverWait object at 0x11b4b22d0>

@pytest.mark.prod_only
@pytest.mark.nondestructive
def test_blog_install_addon(
base_url, selenium, variables, firefox, firefox_notifications, wait
):
blog = BlogHomepage(selenium, base_url).open().wait_for_page_to_load()
article = blog.articles[0].click_read_more_link()
# install add-on from a blog article
> addon_name = article.addon_cards[0].title.text
E IndexError: list index out of range

tests/frontend/test_blog.py:180: IndexError
Failed tests/frontend/test_blog.py::test_addon_link_in_article_addon_cards[Desktop] 6.82
base_url = 'https://addons.mozilla.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="09cd88d7-5fc6-4e64-80de-502d5a10a6fa")>

@pytest.mark.prod_only
@pytest.mark.nondestructive
def test_addon_link_in_article_addon_cards(base_url, selenium):
blog = BlogHomepage(selenium, base_url).open().wait_for_page_to_load()
article = blog.articles[0].click_read_more_link()
# make a note of the add-on name in the article card
> addon_name = article.addon_cards[0].title.text
E IndexError: list index out of range

tests/frontend/test_blog.py:212: IndexError
Failed tests/frontend/test_blog.py::test_author_link_in_article_addon_cards[Desktop] 7.48
base_url = 'https://addons.mozilla.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="3c02a541-a6a1-47a6-8126-1118e4f0f55e")>

@pytest.mark.prod_only
@pytest.mark.nondestructive
def test_author_link_in_article_addon_cards(base_url, selenium):
blog = BlogHomepage(selenium, base_url).open().wait_for_page_to_load()
article = blog.articles[0].click_read_more_link()
# make a note of the addon author in the article card
> addon_author = article.addon_cards[0].author.text
E IndexError: list index out of range

tests/frontend/test_blog.py:226: IndexError
Failed tests/frontend/test_install.py::test_about_addons_extension_updates[Desktop] 22.52
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="adae5766-6614-40d3-bada-5b31f8aeb106")>, base_url = 'https://addons.mozilla.org'
wait = <[AttributeError("'function' object has no attribute 'session_id'") raised in repr()] WebDriverWait object at 0x11fb25b10>, firefox = <foxpuppet.foxpuppet.FoxPuppet object at 0x11fb34bd0>
firefox_notifications = <function notifications at 0x118618720>
variables = {'addon_size_extension': 'darkreader', 'addon_validation_message': 'Your add-on was validated with no errors or warnings.', 'addon_with_stats': 'new-tab-override', 'all_scores_addon': 'ublock-origin', ...}

@pytest.mark.sanity
@pytest.mark.fail
def test_about_addons_extension_updates(
selenium, base_url, wait, firefox, firefox_notifications, variables
):
"""Install an addon from AMO and check for updates in addons manager;
this test is set up to be able to run on each AMO environment"""
extension = variables["extension_version_updates"]
selenium.get(f"{base_url}/addon/{extension}/versions/")
versions = Versions(selenium, base_url).wait_for_page_to_load()
# make a note of the latest version number - this should be visible once the addon updates
latest_version = versions.latest_version_number
# install an older version of the addon
versions.versions_list[1].click_download_link()
# if the addon is installed from dev or stage we might need to confirm the site security
# in order to be able to install the addon; the following exception accounts for that
try:
firefox.browser.wait_for_notification(
firefox_notifications.AddOnInstallConfirmation
).install()
except TimeoutException as error:
# check that the timeout message is raised by the AddOnInstallConfirmation class
assert error.msg == "AddOnInstallConfirmation was not shown."
firefox.browser.wait_for_notification(
firefox_notifications.AddOnInstallBlocked
).allow()
firefox.browser.wait_for_notification(
firefox_notifications.AddOnInstallConfirmation
).install()
# go to addons manager and locate the installed addon
selenium.get("about:addons")
about_addons = AboutAddons(selenium)
about_addons.click_extensions_side_button()
about_addons.installed_addon_cards[0].click()
# trigger a manual update check to receive the latest addon version
about_addons.click_options_button()
action = ActionChains(selenium)
action.send_keys("c").perform()
# compare the updated version to the latest version from AMO and make sure they match
> wait.until(
lambda _: latest_version == about_addons.installed_version_number,
message=f'Latest version from AMO "{latest_version}" did not match updated version from addons manager '
f'"{about_addons.installed_version_number}"',
)

tests/frontend/test_install.py:286:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <[AttributeError("'function' object has no attribute 'session_id'") raised in repr()] WebDriverWait object at 0x11fb25b10>
method = <function test_about_addons_extension_updates.<locals>.<lambda> at 0x11fb21620>, message = 'Latest version from AMO "0.7.6" did not match updated version from addons manager "0.7.4"'

def until(self, method, message: str = ""):
"""Calls the method provided with the driver as an argument until the \
return value does not evaluate to ``False``.

:param method: callable(WebDriver)
:param message: optional message for :exc:`TimeoutException`
:returns: the result of the last call to `method`
:raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs
"""
screen = None
stacktrace = None

end_time = time.monotonic() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.monotonic() > end_time:
break
> raise TimeoutException(message, screen, stacktrace)
E selenium.common.exceptions.TimeoutException: Message: Latest version from AMO "0.7.6" did not match updated version from addons manager "0.7.4"

venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException
XFailed tests/frontend/test_sanity.py::test_discovery_taar_recommendations 0.37
base_url = 'https://addons.mozilla.org'
variables = {'addon_size_extension': 'darkreader', 'addon_validation_message': 'Your add-on was validated with no errors or warnings.', 'addon_with_stats': 'new-tab-override', 'all_scores_addon': 'ublock-origin', ...}

@pytest.mark.sanity
@pytest.mark.xfail(
reason="Known issue with taar recomendations", strict=False
)
def test_discovery_taar_recommendations(base_url, variables):
"""The scope of this test is to verify if the addons manager recommendations page returns
extensions from the TAAR service based on a 'telemetry-client-id'"""
request = requests.get(
url=f"{base_url}/api/v5/discovery/",
params={"telemetry-client-id": variables["telemetry_client_id"]},
)
# make a list with only the extensions returned by the discovery API;
# we exclude themes because they are not recommended by default
recommendations = [
item["is_recommendation"]
for item in request.json()["results"]
if item["addon"]["type"] == "extension"
]
# determine if the list created before contains at least one recommended extension;
# it is not mandatory for all extensions to be TAAR recommendations, but we need to have
# at least one to determine whether the service is working or not
> assert True in recommendations
E assert True in [False, False, False, False]

tests/frontend/test_sanity.py:327: AssertionError
Skipped tests/frontend/test_sanity.py::test_about_addons_search[Desktop] 0.00
('/Users/alexandru.schek/addons-release-tests/tests/frontend/test_sanity.py', 103, 'Skipped: Still investigating why this test has started failing recently')
Skipped tests/frontend/test_sanity.py::test_detail_page_taar_recommendations[Desktop] 0.00
('/Users/alexandru.schek/addons-release-tests/tests/frontend/test_sanity.py', 267, 'Skipped: unconditional skip')
Passed tests/devhub/test_addon_validate.py::test_validate_addon_listed[Desktop] 58.62
-----------------------------Captured stdout setup------------------------------
The "click continue button" event occurred.
Passed tests/devhub/test_addon_validate.py::test_validate_listed_addon_option_no_manifest_found[Desktop] 10.15
No log output captured.
Passed tests/devhub/test_addon_validate.py::test_validate_listed_addon_option_unsupported_format[Desktop] 8.27
No log output captured.
Passed tests/devhub/test_addon_validate.py::test_validate_addon_unlisted[Desktop] 52.17
-----------------------------Captured stdout setup------------------------------
The "click continue button" event occurred.
Passed tests/devhub/test_addon_validate.py::test_validate_unlisted_addon_option_no_manifest_found[Desktop] 50.09
-----------------------------Captured stdout setup------------------------------
The "click continue button" event occurred.
Passed tests/devhub/test_addon_validate.py::test_validate_unlisted_addon_option_unsupported_format[Desktop] 46.99
-----------------------------Captured stdout setup------------------------------
The "click continue button" event occurred.
Passed tests/devhub/test_devhub_home.py::test_click_extension_workshop[Desktop] 8.01
No log output captured.
Passed tests/devhub/test_devhub_home.py::test_click_documentation[Desktop] 6.82
No log output captured.
Passed tests/devhub/test_devhub_home.py::test_click_support[Desktop] 7.81
No log output captured.
Passed tests/devhub/test_devhub_home.py::test_devhub_login[Desktop] 47.28
-----------------------------Captured stdout setup------------------------------
The "click continue button" event occurred.
Passed tests/devhub/test_devhub_home.py::test_devhub_page_overview[Desktop] 7.02
No log output captured.
Passed tests/devhub/test_devhub_home.py::test_devhub_page_content[Desktop] 5.21
No log output captured.
Passed tests/devhub/test_devhub_home.py::test_devhub_content_login_link[Desktop] 6.62
No log output captured.
Passed tests/devhub/test_devhub_home.py::test_devhub_page_get_involved[Desktop] 8.82
No log output captured.
Passed tests/devhub/test_devhub_home.py::test_devhub_logout_tc_id_c15075[Desktop] 7.91
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_extension_meta_card_tc_id_c392798[Desktop] 6.48
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_detail_author_links[Desktop] 9.91
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_stats_reviews_summary_click[Desktop] 9.74
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_click_stats_rating_bar[Desktop] 9.10
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_contribute_button_tc_id_c4402[Desktop] 5.74
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_more_info_support_links[Desktop-0-Homepage] 9.47
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_more_info_support_links[Desktop-1-Support site] 9.32
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_more_info_support_links[Desktop-2-Support Email] 8.23
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_more_info_version_number[Desktop] 8.93
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_more_info_addon_last_update[Desktop] 8.64
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_more_info_related_categories[Desktop] 30.87
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_more_info_external_license[Desktop] 8.44
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_screenshot_viewer[Desktop] 14.03
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_addon_description[Desktop] 9.63
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_developer_comments[Desktop] 9.23
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_addon_recommendations[Desktop] 8.17
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_click_addon_recommendations[Desktop] 11.90
No log output captured.
Passed tests/frontend/test_addon_detail.py::test_theme_detail_page_tc_id_c95590[Desktop] 8.92
No log output captured.
Passed tests/frontend/test_blog.py::test_blog_homepage_header_logo_button[Desktop] 8.79
No log output captured.
Passed tests/frontend/test_blog.py::test_articles_elements_are_displayed[Desktop] 8.63
No log output captured.
Passed tests/frontend/test_blog.py::test_open_article_by_clicking_article_image[Desktop] 8.49
No log output captured.
Passed tests/frontend/test_blog.py::test_open_article_by_clicking_article_title[Desktop] 6.78
No log output captured.
Passed tests/frontend/test_blog.py::test_article_page_loaded_correctly[Desktop] 7.36
No log output captured.
Passed tests/frontend/test_blog.py::test_article_page_header_logo_button[Desktop] 10.04
No log output captured.
Passed tests/frontend/test_blog.py::test_navbar_frontend_homepage_link[Desktop] 10.63
No log output captured.
Passed tests/frontend/test_blog.py::test_navbar_blog_homepage_link[Desktop] 7.56
No log output captured.
Passed tests/frontend/test_blog.py::test_navbar_current_article_link[Desktop] 8.55
No log output captured.
Passed tests/frontend/test_blog.py::test_next_and_previous_article_links[Desktop] 7.85
No log output captured.
Passed tests/frontend/test_blog.py::test_addon_cards_loaded_correctly[Desktop] 6.50
No log output captured.
Passed tests/frontend/test_blog.py::test_addon_card_recommendation_badge_link[Desktop] 7.16
No log output captured.
Passed tests/frontend/test_extensions.py::test_extension_landing_header[Desktop] 7.91
No log output captured.
Passed tests/frontend/test_extensions.py::test_recommended_extensions_shelf[Desktop] 5.22
No log output captured.
Passed tests/frontend/test_extensions.py::test_browse_more_recommended_extensions[Desktop] 6.95
No log output captured.
Passed tests/frontend/test_extensions.py::test_browse_more_top_rated_extensions[Desktop] 6.72
No log output captured.
Passed tests/frontend/test_extensions.py::test_browse_more_trending_extensions[Desktop] 6.26
No log output captured.
Passed tests/frontend/test_home.py::test_click_header_extensions_tc_id_c95105[Desktop] 5.56
No log output captured.
Passed tests/frontend/test_home.py::test_click_header_themes_tc_id_c95105[Desktop] 6.45
No log output captured.
Passed tests/frontend/test_home.py::test_logo_routes_to_homepage_tc_id_c95105[Desktop] 6.84
No log output captured.
Passed tests/frontend/test_home.py::test_firefox_addons_blog_link_tc_id_c95105[Desktop] 7.29
No log output captured.
Passed tests/frontend/test_home.py::test_developer_hub_link_tc_id_c95105[Desktop] 5.86
No log output captured.
Passed tests/frontend/test_home.py::test_extension_workshop_link_tc_id_c95105[Desktop] 6.07
No log output captured.
Passed tests/frontend/test_home.py::test_more_dropdown_navigates_correctly_tc_id_c95103[Desktop-0-Dictionaries and Language Packs] 10.94
No log output captured.
Passed tests/frontend/test_home.py::test_more_dropdown_navigates_correctly_tc_id_c95103[Desktop-1-Add-ons for Firefox Android] 10.51
No log output captured.
Passed tests/frontend/test_home.py::test_primary_hero_tc_id_c95105[Desktop] 10.41
No log output captured.
Passed tests/frontend/test_home.py::test_secondary_hero_modules_tc_id_c95105[Desktop] 5.82
No log output captured.
Passed tests/frontend/test_home.py::test_click_module_link_tc_id_c95105[Desktop-0-First module] 8.84
No log output captured.
Passed tests/frontend/test_home.py::test_click_module_link_tc_id_c95105[Desktop-1-Second module] 6.95
No log output captured.
Passed tests/frontend/test_home.py::test_click_module_link_tc_id_c95105[Desktop-2-Third module] 5.84
No log output captured.
Passed tests/frontend/test_home.py::test_browse_all_recommended_extensions_tc_id_c1137804[Desktop] 8.59
No log output captured.
Passed tests/frontend/test_home.py::test_home_recommended_extensions_shelf_tc_id_c95105[Desktop] 5.53
No log output captured.
Passed tests/frontend/test_home.py::test_home_see_more_links_tc_id_c4407[Desktop] 15.66
No log output captured.
Passed tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-0-Abstract] 6.67
No log output captured.
Passed tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-1-Nature] 6.71
No log output captured.
Passed tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-2-Film] 6.19
No log output captured.
Passed tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-3-Scenery] 5.80
No log output captured.
Passed tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-4-Music] 6.82
No log output captured.
Passed tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-5-Seasonal] 7.00
No log output captured.
Passed tests/frontend/test_home.py::test_mozilla_footer_link_tc_id_c95105[Desktop] 8.31
No log output captured.
Passed tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-About] 6.02
No log output captured.
Passed tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Firefox Add-ons Blog] 7.91
No log output captured.
Passed tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Extension Workshop] 6.94
No log output captured.
Passed tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Developer Hub] 5.82
No log output captured.
Passed tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Developer Policies] 6.63
No log output captured.
Passed tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Community Blog] 8.04
No log output captured.
Passed tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Forum] 11.81
No log output captured.
Passed tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Report a bug] 6.06
No log output captured.
Passed tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Review Guide] 5.44
No log output captured.
Passed tests/frontend/test_home.py::test_browsers_footer_links_tc_id_c95105[Desktop-Firefox Desktop] 7.74
No log output captured.
Passed tests/frontend/test_home.py::test_browsers_footer_links_tc_id_c95105[Desktop-Firefox Mobile] 5.70
No log output captured.
Passed tests/frontend/test_home.py::test_browsers_footer_links_tc_id_c95105[Desktop-Firefox Enterprise] 6.51
No log output captured.
Passed tests/frontend/test_home.py::test_products_footer_links_tc_id_c95105[Desktop-Browsers] 6.49
No log output captured.
Passed tests/frontend/test_home.py::test_products_footer_links_tc_id_c95105[Desktop-VPN] 6.58
No log output captured.
Passed tests/frontend/test_home.py::test_products_footer_links_tc_id_c95105[Desktop-Relay] 7.70
No log output captured.
Passed tests/frontend/test_home.py::test_products_footer_links_tc_id_c95105[Desktop-Monitor] 7.67
No log output captured.
Passed tests/frontend/test_home.py::test_products_footer_links_tc_id_c95105[Desktop-Pocket] 10.38
No log output captured.
Passed tests/frontend/test_home.py::test_social_footer_links_tc_id_c95105[Desktop-Firefox on Twitter] 11.40
No log output captured.
Passed tests/frontend/test_home.py::test_social_footer_links_tc_id_c95105[Desktop-Firefox on Instagram] 7.34
No log output captured.
Passed tests/frontend/test_home.py::test_social_footer_links_tc_id_c95105[Desktop-Firefox on YouTube] 6.43
No log output captured.
Passed tests/frontend/test_home.py::test_legal_footer_links_tc_id_c95105[Desktop-Privacy] 5.82
No log output captured.
Passed tests/frontend/test_home.py::test_legal_footer_links_tc_id_c95105[Desktop-Cookies] 5.48
No log output captured.
Passed tests/frontend/test_home.py::test_legal_footer_links_tc_id_c95105[Desktop-Legal] 6.04
No log output captured.
Passed tests/frontend/test_home.py::test_copyright_footer_links_tc_id_c95105[Desktop-Legal] 5.81
No log output captured.
Passed tests/frontend/test_home.py::test_copyright_footer_links_tc_id_c95105[Desktop-Creative Commons License] 6.23
No log output captured.
Passed tests/frontend/test_home.py::test_change_language_tc_id_c95098[Desktop-HomePage French Translation] 6.74
------------------------------Captured stdout call------------------------------
Test present in TC: C95105,C95098
Passed tests/frontend/test_home.py::test_change_language_tc_id_c95098[Desktop-HomePage German Translation] 7.24
------------------------------Captured stdout call------------------------------
Test present in TC: C95105,C95098
Passed tests/frontend/test_home.py::test_change_language_tc_id_c95098[Desktop-HomePage Chinese Translation] 7.05
------------------------------Captured stdout call------------------------------
Test present in TC: C95105,C95098
Passed tests/frontend/test_home.py::test_change_language_tc_id_c95098[Desktop-HomePage Russian Translation] 7.41
------------------------------Captured stdout call------------------------------
Test present in TC: C95105,C95098
Passed tests/frontend/test_home.py::test_change_language_tc_id_c95098[Desktop-HomePage Hebrew Translation] 7.59
------------------------------Captured stdout call------------------------------
Test present in TC: C95105,C95098
Passed tests/frontend/test_sanity.py::test_language_tools_landing_page[Desktop] 6.47
No log output captured.
Passed tests/frontend/test_sanity.py::test_install_language_pack[Desktop] 10.54
No log output captured.
Passed tests/frontend/test_sanity.py::test_install_dictionary[Desktop] 10.83
No log output captured.
Passed tests/frontend/test_sanity.py::test_install_extension[Desktop] 15.99
No log output captured.
Passed tests/frontend/test_sanity.py::test_install_theme[Desktop] 9.93
No log output captured.
Passed tests/frontend/test_sanity.py::test_about_addons_find_more_addons[Desktop] 6.04
No log output captured.
Passed tests/frontend/test_sanity.py::test_about_addons_addon_cards[Desktop] 5.18
No log output captured.
Passed tests/frontend/test_sanity.py::test_about_addons_addon_cards_author_link[Desktop] 6.59
No log output captured.
Passed tests/frontend/test_sanity.py::test_about_addons_addon_stats_match_amo[Desktop] 7.22
No log output captured.
Passed tests/frontend/test_sanity.py::test_about_addons_install_extension[Desktop] 9.48
No log output captured.
Passed tests/frontend/test_sanity.py::test_about_addons_install_theme[Desktop] 7.17
No log output captured.
Passed tests/frontend/test_search.py::test_search_suggestion_term_is_higher_tc_id_c4481[Desktop-Flagfox] 6.77
No log output captured.
Passed tests/frontend/test_search.py::test_search_suggestion_term_is_higher_tc_id_c4481[Desktop-Video DownloadHelper] 8.44
No log output captured.
Passed tests/frontend/test_search.py::test_search_suggestion_term_is_higher_tc_id_c4481[Desktop-Adblock Plus] 6.22
No log output captured.
Passed tests/frontend/test_search.py::test_search_suggestion_term_is_higher_tc_id_c4481[Desktop-Tree Style Tab] 6.65
No log output captured.
Passed tests/frontend/test_search.py::test_search_suggestion_term_is_higher_tc_id_c4481[Desktop-Two little birds] 6.87
No log output captured.
Passed tests/frontend/test_search.py::test_click_aside_closes_suggestion_list[Desktop] 7.97
No log output captured.
Passed tests/frontend/test_search.py::test_select_result_with_click_tc_id_c4485[Desktop] 11.29
No log output captured.
Passed tests/frontend/test_search.py::test_search_loads_and_navigates_to_correct_page[Desktop] 6.49
No log output captured.
Passed tests/frontend/test_search.py::test_blank_search_loads_results_tc_id_c97496[Desktop] 6.69
No log output captured.
Passed tests/frontend/test_search.py::test_filter_by_users_tc_id_c92462[Desktop] 8.87
No log output captured.
Passed tests/frontend/test_search.py::test_filter_by_rating_and_hotness_tc_id_c92462[Desktop-Top Rated-rating] 7.88
No log output captured.
Passed tests/frontend/test_search.py::test_filter_by_rating_and_hotness_tc_id_c92462[Desktop-Trending-hotness] 6.59
No log output captured.
Passed tests/frontend/test_search.py::test_filter_extensions_tc_id_c92462[Desktop] 8.68
No log output captured.
Passed tests/frontend/test_search.py::test_top_rated_recommended_addons_tc_id_c92462[Desktop] 9.14
No log output captured.
Passed tests/frontend/test_search.py::test_filter_promoted[Desktop-recommended-Recommended] 8.32
No log output captured.
Passed tests/frontend/test_search.py::test_filter_promoted[Desktop-line-By Firefox] 8.42
No log output captured.
Passed tests/frontend/test_search.py::test_filter_promoted[Desktop-badged-All Reviewed] 7.75
No log output captured.
Passed tests/frontend/test_themes.py::test_themes_landing_header[Desktop] 5.91
No log output captured.
Passed tests/frontend/test_themes.py::test_recommended_themes[Desktop] 5.96
No log output captured.
Passed tests/frontend/test_themes.py::test_browse_more_recommended_themes[Desktop] 7.17
No log output captured.
Passed tests/frontend/test_themes.py::test_browse_more_top_rated_themes[Desktop] 6.18
No log output captured.
Passed tests/frontend/test_themes.py::test_browse_more_trending_themes[Desktop] 6.57
No log output captured.